/*
 This sketch establishes a TCP connection to a "quote of the day" service.
 It sends a "hello" message, and then prints received data.
*/
#include <ESP8266WiFi.h>
#ifndef STASSID
// #define STASSID "NETGEAR" 
// #define STAPSK "*******" 

#define STASSID "gerogerori" 
#define STAPSK "****" 

#endif
const char* ssid = STASSID;
const char* password = STAPSK;
// const char* host = "192.168.1.220";
// 192.168.43.10
// const char* host = "169.254.97.243";
// const char* host = "192.168.43.10";
// 这个host 不是和 wifi ip 一样的
// const char* host = "192.168.43.220";
const char* host = "192.168.43.122"; 

const uint16_t port = 6800;
 // Use WiFiClient class to create TCP connections
WiFiClient client;
void setup() {
 Serial.begin(115200);
 // We start by connecting to a WiFi network
 Serial.println();
 Serial.println();
 Serial.print("Connecting to ");
 Serial.println(ssid);
 /* Explicitly set the ESP8266 to be a WiFi-client, otherwise, it by default,
 would try to act as both a client and an access-point and could cause
 network-issues with your other WiFi-devices on your WiFi-network. */
 WiFi.mode(WIFI_STA);
 WiFi.begin(ssid, password);
 while (WiFi.status() != WL_CONNECTED) {
 delay(500);
 Serial.print(".");
 }
 Serial.println("");
 Serial.println("WiFi connected");
 Serial.println("IP address: ");
 Serial.println(WiFi.localIP());
//  host=WiFi.localIP();
//  conversion from 'IPAddress' to 'const char*' is ambiguous
// 
}
void loop() {
 Serial.print("connecting to ");
 Serial.print(host);
 Serial.print(':');
 Serial.println(port);
// 物联网技术与应用
// 10
 if (!client.connect(host, port)) {
 Serial.println("connection failed");
 delay(5000);
 return;
 }
 // This will send a string to the server
 Serial.println("sending data to server");
 if (client.connected()) {
//  client.println("hello from ESP8266 from mqp");
  client.println( "Hello from ESP8266 , Hello  from mqp ");

 }
 // wait for data to be available
// unsigned long timeout = millis();
// while (client.available() == 0) {
// if (millis() - timeout > 5000) {
// Serial.println(">>> Client Timeout !");
// client.stop();
 delay(6000);
// return;
// }
// }
 // Read all the lines of the reply from server and print them to Serial
 Serial.println("receiving from remote server");
 // not testing 'client.connected()' since we do not need to send data here
 while (client.available()) {
 char ch = static_cast<char>(client.read());
 Serial.print(ch);
 }
 // Close the connection
 Serial.println();
 Serial.println("closing connection");
 client.stop();
 delay(3000); // execute once every 5 minutes, don't flood remote service
}
